#ifndef SIGNALHANDLERWORKER_H_INCLUDED
#define SIGNALHANDLERWORKER_H_INCLUDED

#include <MultiplexD/WorkerModel/MultiplexWorker.h>

namespace Ape {
	namespace EventModel {
		class EventArgs;
	}
}

namespace MultiplexD {
	namespace SignalHandlerWorker {
		enum SignalHandlerLetterType {
			ltSignalCaught = 0x101
		};
		
		class SignalHandlerData : public MultiplexD::WorkerModel::MultiplexLetterData {
			TYPE_NAME("MultiplexD::SignalHandlerWorker::SignalHandlerData")
		public:
			int SigNum;
		};
		
		class Worker : public MultiplexD::WorkerModel::MultiplexWorker {
		TYPE_NAME("MultiplexD::SignalHandlerWorker")
		public:
			Worker();
			~Worker();
			
			void OnSignal(Ape::EventModel::EventArgs& ea);
			
			virtual void ProcessMessage(const MultiplexD::WorkerModel::MultiplexLetter&);
		};
	}
}


#endif // SIGNALHANDLERWORKER_H_INCLUDED
